/* eslint-disable global-require */
/* eslint-disable import/no-extraneous-dependencies */
const findChrome = require("carlo/lib/find_chrome");

const getBrowser = async () => {
  try {
    // eslint-disable-next-line import/no-unresolved
    const puppeteer = require("puppeteer");
    const browser = await puppeteer.launch({
      args: [
        "--disable-gpu",
        "--disable-dev-shm-usage",
        "--no-first-run",
        "--no-zygote",
        "--no-sandbox",
      ],
    });
    return browser;
  } catch (error) {
    // console.log(error)
  }

  try {
    // eslint-disable-next-line import/no-unresolved
    const puppeteer = require("puppeteer-core");
    const findChromePath = await findChrome({});
    const { executablePath } = findChromePath;
    const browser = await puppeteer.launch({
      executablePath,
      args: [
        "--disable-gpu",
        "--disable-dev-shm-usage",
        "--no-first-run",
        "--no-zygote",
        "--no-sandbox",
      ],
    });
    return browser;
  } catch (error) {
    console.log("🧲 no find chrome");
  }
  throw new Error("no find puppeteer");
};

module.exports = getBrowser;
